namespace dotnet_ef_admin.Src.Utilities;

/// <summary>
///     提供与日期时间相关的工具方法。
/// </summary>
public static class DateTimeUtils {
    /// <summary>
    ///     日期时间的固定格式，yyyy-MM-dd HH:mm:ss。
    /// </summary>
    private const string DateFormat = "yyyy-MM-dd HH:mm:ss";

    /// <summary>
    ///     获取当前日期时间的字符串表示形式，采用 <see cref="DateFormat"/> 格式。
    /// </summary>
    public static string GetCurrentTimeString() {
        return DateTime.Now.ToString(DateFormat);
    }

    /// <summary>
    ///     将指定的日期时间字符串解析为 <see cref="DateTime"/> 对象。
    /// </summary>
    /// <param name="dateTimeString">要解析的日期时间字符串。</param>
    /// <returns>解析结果。</returns>
    /// <exception cref="FormatException">如果日期时间字符串的格式不正确。</exception>
    public static DateTime ParseDateTimeString(string dateTimeString) {
        if (DateTime.TryParseExact(dateTimeString, DateFormat, null, System.Globalization.DateTimeStyles.None, out var dateTime)) {
            return dateTime;
        }
        throw new FormatException("Invalid date format");
    }
}
